// 版权所有2011 Go作者。保留所有权利。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

package json

import (
	"strings"
)

// tagOptions是结构字段“json”中逗号后的字符串
// tag，或空字符串。它不包括前导逗号。
type tagOptions string

// parseTag将结构字段的json标记拆分为名称和逗号分隔的选项。
func parseTag(tag string) (string, tagOptions) {
	tag, opt, _ := strings.Cut(tag, ",")
	return tag, tagOptions(opt)
}

// 包含以逗号分隔的选项列表
// 是否包含特定的substr标志的报告。substr必须由
// 字符串边界或逗号包围。
func (o tagOptions) Contains(optionName string) bool {
	if len(o) == 0 {
		return false
	}
	s := string(o)
	for s != "" {
		var name string
		name, s, _ = strings.Cut(s, ",")
		if name == optionName {
			return true
		}
	}
	return false
}
